package com.qf.sy2103.ssm.Controller.User;

import cn.hutool.db.meta.Table;
import com.qf.sy2103.ssm.Service.RouteService;
import com.qf.sy2103.ssm.Util.Constant;
import com.qf.sy2103.ssm.entity.Route;
import com.qf.sy2103.ssm.vo.Tablevo;
import com.qf.sy2103.ssm.vo.Uservo;
import com.qf.sy2103.ssm.vo.pagevo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Objects;

@Controller
@Slf4j
@RequestMapping("/route")
public class RouteController {
    @Autowired
    private RouteService routeService;

    //获取分页数据
    @ResponseBody
    @RequestMapping("/getAll")
    public Tablevo<Route> getAll(pagevo pagevo,Route route,String states){
        log.debug("入参为 {} {}",pagevo,route,states);

        if (route.getState()==0&&(Objects.isNull(states))){
            //如果没有传回route就返回所有数据 不同的查询方法
            Tablevo<Route> tablevo = routeService.getALL(pagevo);
            log.debug("返回参数为 {}",tablevo);
            return tablevo;
        }

        if (Objects.nonNull(states)&&states!=""){
            int i = Integer.parseInt(states);
            route.setState(i);
        }

        Tablevo<Route> tablevo = routeService.getAll(pagevo,route);
        log.debug("返回参数为 {}",tablevo);
        return tablevo;
    }


    @ResponseBody
    @RequestMapping("/add")
    public Uservo addUse(Route route){
        Uservo uservo = new Uservo();
        log.debug("入参为 {}",route);
        Boolean b =  routeService.addUse(route);
        if (b){
            //新增数据成功返回一个状态码
            uservo.setStatus(Constant.CLIENT_ADD_SUCCESS);
            return uservo;
        }
        //增加数据失败 不返回状态码就会直接将失败语句弹出来
        uservo.setMessage(Constant.USER_VIEWS_FULE);
        return uservo;
    }

    @ResponseBody
    @RequestMapping("/delete")
    public Uservo deleteUse(@RequestParam(value = "ids",required = false) List<Integer> ids){
        Uservo uservo = new Uservo();
        log.debug("入参为 {}",ids);
        Boolean b = routeService.deleteUse(ids);
        if(b){
            //删除成功
            uservo.setStatus(Constant.USER_DELETE_SUCCESS);
            return uservo;
        }
        //删除失败
        uservo.setMessage(Constant.CLIENT_DELETE_FAL);
        return uservo;
    }

    @ResponseBody
    @RequestMapping("/update")
    public Uservo updateUse(Route route){
        Uservo uservo = new Uservo();
        log.debug("入参为 {}",route);
        Boolean b =routeService.updateUse(route);
        if(b){
            //修改数据成功
            uservo.setStatus(Constant.CLIENT_UPDATE_SUCCESS);
            return uservo;
        }
        //修改数据失败
        uservo.setMessage(Constant.USER_UPDATE_FALES);
        return uservo;
    }
}
